#include "stdafx.h"
#include "stdlib.h"
#include "time.h"
#include "stdio.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int difn[5]={2000,4000,8000,10000,100000},k,label;
	long n,i,j,t;
	long int mas[100000];
	srand(9);
	
	for (k=0;k<5;k++)     //главный цикл, который подставляет в n разные значения из массива difn
	{n=difn[k];
	printf("chisel: %d\n",n);
//////////////////////////////////////////////////////////////////////////////////////
	for (i=0;i<n;i++)       //генерирую массив случайных чисел
	{
		mas[i]=rand() % 10;
	}
	long t1=clock();        //считываю время перед циклом

	for (i=1;i<n;i++)       //сортирую
		for (j=0;j<n-1;j++)
		{
			if (mas[j]>mas[j+1])
			{t=mas[j];mas[j]=mas[j+1];mas[j+1]=t;}
		}
	long t2=clock();                      //считываю время после завершения цикла
	printf("sort1: %d\n",(t2-t1));       //вывожу время работы цикла
///////////////////////////////////////////////////////////////////////////////////////
	for (i=0;i<n;i++)     
	{
		mas[i]=rand() % 10;
	}
	t1=clock();    

	for (i=1;i<n;i++)             //всё то же самое, но для улучшенной сортировки пузырьком
	{	label=0;
		for (j=0;j<n-i;j++)
		{
			if (mas[j]>mas[j+1])
			{t=mas[j];mas[j]=mas[j+1];mas[j+1]=t;label=1;}
		}
		if(label==0) i=n-1;
	}
	t2=clock();   
	printf("sort2: %d\n",(t2-t1));
/////////////////////////////////////////////////////////////////////////
	for (i=0;i<n;i++)     
	{
		mas[i]=rand() % 10;
	}
	t1=clock();    

	do
	{label=0;
	for (i=0;i<n-2;i++)
	{	if (mas[i]>mas[i+1])
		{t=mas[i];mas[i]=mas[i+1];mas[i+1]=t;label=1;}
	}
		if(label==0) break;
	for (i=n-2;i>0;i--)
	{	if (mas[i]>mas[i+1])
		{t=mas[i];mas[i]=mas[i+1];mas[i+1]=t;label=1;}
	}}
	while(label);
	t2=clock();   
	printf("sort3: %d\n",(t2-t1));}
/////////////////////////////////////////////////////////////////////////
	return 0;
}

